package it.ap.sa.core.utils.costants;

import it.ap.sa.core.configuration.commons.IConfiguration;

/**
 * @author Alessandro Paolillo
 */
public enum ConfigurationConstants {
	
/** =============================================================================== **/
	
	/*
	 * Codice applicazione 
	 */
	CODE_APP, 
	
/** =============================================================================== **/
	
	/*
	 * Reader(database o file) che determina da dove leggere i parametri di configurazione dell'applicazione.
	 * Indicata la classe comprensiva di package.
	 */
	CONFIG_READER,
	/*
	 * Writer(database o file) col quale archiviare i log prodotti con Audit4j.
	 */
	AUDIT_WRITER_CLASS,

/** =============================================================================== **/
	
	/* SUBSCRIBER ACTIVEMQ */
	
	/*
	 * Indica se l'applicazione è sottoscrittrice del topic policy e quindi deve processare i messaggi che arrivano o può solo inviarli
	 */
	APP_IS_SUBSCRIBER,
	/*
	 * Elenco dei topic su cui l'applicazione deve mettersi in ascolto. Ogni elemento della lista è separato da virgola.
	 * L'elemento è dato dalla Classe java che implementa la procedura di sottoscrizione e callback. Indicare la classe comprensiva di package.
	 */
	SUBSCRIBER_CLASSES,
	
/** =============================================================================== **/

	/* GESTORE POLICY */
	
	/*
	 * Indica se l'applicazione deve verificare allo startup e ad ogni chiamata request le policy attive 
	 */
	POLICY_HAS_CHECK,
	/*
	 * Classe che implementa la procedura di caricamento delle policy, attive, in memoria dell'applicazione.
	 * Indicare la classe comprensiva di package.
	 * Loader disponibili: 
	 *   - it.eng.tz.core.service.policy.PolicyLoaderService
	 */
	POLICY_LOADER_CLASS,
	/*
	 * Pagina alla quale l'utente deve essere reindirizzato quando viene se richiede il logout forzato
	 */
	POLICY_REDIRECT_URL_LOGOUT,
	/*
	 * Pagina alla quale l'utente deve essere reindirizzato per cambiare la password
	 */
	POLICY_REDIRECT_URL_CH_PASSWORD,
	/*
	 * Nome topic su cui mettersi in ascolto per l'invio e la ricezione di notifiche policy
	 */
	POLICY_TOPIC_NAME,
	/*
	 * The client identifier (short ClientId) is an identifier of each MQTT client connecting to a MQTT broker.
	 */
	POLICY_MQTT_CLIENT_ID;
}
